
package eletrotudo3;

import java.util.Scanner;


public class Menu {
    private boolean acessoPrivilegiado;

    public Menu() {
        this.acessoPrivilegiado = false;
    }
    
    
    public void login(Colecoes colecao){
        boolean sucesso=false;
        while(!sucesso){
            Scanner scan=new Scanner(System.in);  // classe scaner
            Login login=new Login();               // classe login
            System.out.println("\n Entre com o nome de usuário:\n");
            String usuario;
            usuario=scan.next();
            System.out.println("\n Entre com a senha de usuário:\n");
            String senha;
            senha=scan.next();
        
            if(login.login(usuario, senha, colecao)>=0){
              if(login.login(usuario, senha, colecao)==1) {
                    this.acessoPrivilegiado=true;
                }
                this.principal(colecao);
                sucesso=true;
                
             }
        
            else{
                System.out.println("\nNome de usuario e senha invalidos!!!\n");
             }
            
        }
    }

    public void principal(Colecoes colecao){
        
        if(this.acessoPrivilegiado==true){
            System.out.println("\nBem Vindo Administrador\n");
        
        }    
        else{
            System.out.println("\nBem Vindo Funcionário\n");
            
        }
        int Q=-1;
        Scanner scan=new Scanner(System.in);
        while(Q!=0){
            System.out.println("\n\n\n\n\n\n====MENU PRINCIPAL====");
            System.out.println("1-Gestao de Funcionarios");
            System.out.println("2-Gestao de Estoque");
            System.out.println("3-Gestao de Fornecedores");
            System.out.println("4-Gestao de Consertos");
            System.out.println("0-SAIR");
            Q=scan.nextInt();
            
            if(Q==1){//Gestao de Funcionarios
                if(this.acessoPrivilegiado==false){
                    System.out.println("Voce nao tem acesso para essa funcionalidade");
                }
                else{
                    gestaoFuncionarios(colecao);
                }
                    
            }
            
            if(Q==2){//Gestao de Estoque
                gestaoEstoque(colecao);
                
            }
            
            if(Q==3){//Gestao Fornecedores
                
                
            }
            
            if(Q==4){// Gestao de Consertos
                
                
            }
            
        }
        
        System.out.println("Adios! Tenha um bom dia!");
    }
    
    
    public void gestaoFuncionarios(Colecoes colecao){
        Scanner scan=new Scanner(System.in);
        int Q=-1;
        
        while(Q!=0){
            System.out.println("\n====MENU GESTAO DE FUNCIONARIOS====");
            System.out.println("1-Cadastrar Funcionario");
            System.out.println("2-Excluir Funcionario");
            System.out.println("3-Listar Funcionarios"); 
            System.out.println("0-Voltar ao menu principal");
            Q=scan.nextInt();
            
            if(Q==1){//Cadastrar Funcionario
                 scan.nextLine(); // sem isso da merda com espaços
                 System.out.println("Entre com o nome completo do Funcionario");
                 String nome=scan.nextLine();
                 System.out.println("Entre com o nome de usuario do Funcionario");
                 String nomeUsuario=scan.nextLine();
                 System.out.println("Entre com a senha do Funcionario"); 
                 String senha=scan.nextLine();
                 System.out.println("O novo usuário é um Administrador?1-SIM;2-NAO");
                 int i=scan.nextInt();
                 
                 while(i!=1&&i!=2){
                     System.out.println("Entrada invalida!!! O novo usuário é um Administrador?1-SIM;2-NAO");
                     i=scan.nextInt();
                     
                 }
                 Funcionario novoFuncionario;
                 if(i==1){
                       novoFuncionario=new Administrador(nome,nomeUsuario,senha);
                 }
                 else{
                      novoFuncionario=new Funcionario(nome,nomeUsuario,senha);
                 }
                    
                 colecao.addFuncionario(novoFuncionario);
            }
            
            if(Q==2){//Exluir funcionario
                System.out.println("Entre com o nome do Funcionario a ser excluido");
                scan.next();
                String nome=scan.nextLine();
                
                colecao.excluiFuncionario(nome);
                          
                
            }
            
            if(Q==3){//listar funcionarios
                colecao.mostraFuncionarios();
                
            }
        }
        
    }
    
    
    public void gestaoEstoque(Colecoes colecao){
        int Q=-1;
        Scanner scan=new Scanner(System.in);
        
        while(Q!=0){
            System.out.println("\n====MENU GESTAO ESTOQUE====");
            System.out.println("1-Cadastrar Peca");
            System.out.println("2-Excluir Excluir Peca");
            System.out.println("3-Alterar cadastro"); 
            System.out.println("4-Listar Pecas");
            System.out.println("0-Voltar ao menu principal");
            Q=scan.nextInt();
            
            if(Q==1){//Cadastrar Peca
                 
                 scan.nextLine(); // sem isso da merda com espaços
                 System.out.println("Entre com o codigo da Peca:");
                 int cod=scan.nextInt();
                 System.out.println("Entre com o nome da Peca:");
                 String nome=scan.nextLine();
                 
                 System.out.println("Entre com os dados do Fornecedor:");
                 System.out.println("Entre com o nome do Fornecedor:");
                 String nomeFornecedor=scan.nextLine();
                 System.out.println("Entre com o CNPJ do Fornecedor:");
                 String cnpj=scan.nextLine();
                 System.out.println("Entre com o email do Fornecedor:");
                 String email=scan.nextLine();
                 System.out.println("Entre com o telefone do Fornecedor:");
                 String tel=scan.nextLine();
                 System.out.println("Entre com o endereco do Fornecedor:");
                 String endereco=scan.nextLine();
                 Fornecedor f=new Fornecedor(nomeFornecedor, cnpj, email, tel, endereco);
                 colecao.addFornecedor(f);
                 
                 System.out.println("Entre com a quantidade de Pecas:");
                 int qtd=scan.nextInt();
                
                 Peca peca=new Peca(cod, nome, f, qtd);
                 
                 colecao.addPeca(peca);
                    
            }
            
            if(Q==2){//Exluir Peca
                System.out.println("Entre com o nome da Peca a ser excluida");
                scan.next();
                String nome=scan.nextLine();
                
                colecao.excluiPeca(nome);
            }
            
            if(Q==3){//Alterar peça
                System.out.println("Entre com o nome da Peca a ser alterada");
                String nome=scan.nextLine();
                colecao.alteraPeca(nome);
                
            }
            
             if(Q==4){//listar peças
               colecao.mostraPeca(); 
            }
        }
        
    }
    
    public void gestaoFornecedores(Colecoes colecao){
        int Q=-1;
        Scanner scan=new Scanner(System.in);
        
        while(Q!=0){
            System.out.println("\n====MENU GESTAO ESTOQUE====");
            System.out.println("1-Cadastrar Fornecedor");
            System.out.println("2-Excluir Excluir Fornecedor");
            System.out.println("3-Alterar cadastro"); 
            System.out.println("4-Listar Fornecedores");
            System.out.println("0-Voltar ao menu principal");
            Q=scan.nextInt();
            
            if(Q==1){//Cadastrar Fornecedor
                 
                 scan.nextLine(); // sem isso da merda com espaços
                 System.out.println("Entre com os dados do Fornecedor:");
                 System.out.println("Entre com o nome do Fornecedor:");
                 String nomeFornecedor=scan.nextLine();
                 System.out.println("Entre com o CNPJ do Fornecedor:");
                 String cnpj=scan.nextLine();
                 System.out.println("Entre com o email do Fornecedor:");
                 String email=scan.nextLine();
                 System.out.println("Entre com o telefone do Fornecedor:");
                 String tel=scan.nextLine();
                 System.out.println("Entre com o endereco do Fornecedor:");
                 String endereco=scan.nextLine();
                 Fornecedor f=new Fornecedor(nomeFornecedor, cnpj, email, tel, endereco);
                 colecao.addFornecedor(f);    
            }
            
            if(Q==2){//Exluir Fornecedor
                System.out.println("Entre com o nome do Fornecedor a ser excluido");
                scan.next();
                String nome=scan.nextLine();
                
                colecao.excluiFornecedor(nome);
            }
            
            if(Q==3){//Alterar Fornecedor
                System.out.println("Entre com o nome do Fornecedor a ser alterado");
                String nome=scan.nextLine();
                colecao.alteraFornecedor(nome);
                
            }
            
             if(Q==4){//listar peças
               colecao.mostraFornecedor(); 
            }
        }
        
    }
    
    public void gestaoConsertos(Colecoes colecao){
        int Q=-1;
        Scanner scan=new Scanner(System.in);
        
        while(Q!=0){
            System.out.println("\n====MENU GESTAO CONSERTOS====");
            System.out.println("1-Exclui Conserto");
            System.out.println("2-Lancar Orcamento");
            System.out.println("3-Autorizar Conserto"); 
             System.out.println("0-SAIR");
            Q=scan.nextInt();
            
            if(Q==1){//Excluir Conserto
                System.out.println("Entre com o nome do Conserto a ser excluido");
                scan.next();
                String nome=scan.nextLine();
                
                colecao.excluiConserto(nome);
                  
            }
            
            if(Q==2){//Lancar orcamento
                System.out.println("Entre com o nome do Cliente");
                scan.next();
                String nome=scan.nextLine();
                
                System.out.println("Entre com o valor do orcamento");
                Double valor=scan.nextDouble();
                
                colecao.lancaOrcamento(nome, valor);
                
                
            }
            
            if(Q==3){//Alterar Fornecedor
                System.out.println("Entre com o nome do Cliente para autorização de conserto");
                scan.next();
                String nome=scan.nextLine();
                
                colecao.autorizarConserto(nome);
                
            }
            
             
        }
    }
}

